package 算法shiyan.shiayn3;/**
 * ************************************************************************
 * 项目名称: projectweb <br>
 * 文件名称:  <br>
 * 文件描述: 这里添加您的类文件描述，说明当前文件要包含的功能。 <br>
 * 文件创建：1913040634刘世锦  <br>
 * 创建时间: 2021/4/8 <br>
 *
 * @version v1.0 <br>
 * @update [序号][日期YYYY-MM-DD][更改人姓名][变更描述]<br>
 * ************************************************************************
 */

import java.util.Scanner;

/**
 * @ProjectName: projectweb
 * @ClassName: 数字旋转方阵
 * @Description: 请描述该类的功能
 * @Author: 1913040634刘世锦
 * @Date: 2021/4/8 19:47 .
 * @version v1.0
 */
public class 数字旋转方阵 {
     public   static void xuanzhuan( int number,int begin,int size,int[][]a){
            if ( size==0){
                return;
            }
            if(size==1){
                a[begin][begin] =number;
                return;
            }
            int i=begin;
            int j=begin;
            for (int k = 0; k <size-1 ; k++) { //A区域
                a[i][j] = number;
                number++;
                i++;
            }
            for (int k = 0; k <size-1 ; k++) { //B区域
                a[i][j] = number;
                number++;
                j++;
            }
            for (int k = 0; k <size-1 ; k++) { //C区域
                a[i][j] = number;
                number++;
                i--;
            }
            for (int k = 0; k <size-1 ; k++) { //D区域
                a[i][j] = number;
                number++;
                j--;
            }
            xuanzhuan(number,begin+1,size-2,a);

        }

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入数字方阵的行数：");
        int n = sc.nextInt();
        int [] [] a = new int[n][n];
        xuanzhuan(1,0,n,a);
        for (int i = 0; i <n ; i++) {
            for (int j = 0; j <n ; j++) {
                System.out.printf(a[i][j]+"\t");
                if(j==n-1)
                {
                    System.out.println("");
                }
            }
        }
    }



}
